LỜI NÓI ĐẦU:

Chắc các bạn đã từng nghe nói đến hệ thống tích hợp liên tục (continuous integration) và một số gương mặt nổi tiếng trong đó phải kể đến :Jenkins, Gitlab CI, Travis CI...Hôm nay mình sẽ giới thiệu cách cài đặt Gitlab CI với hệ điều hành Ubuntu/Debian.

Cài đặt Gitlab:

+ Cài theo Omnibus package :

 

  •  -Cài các gói cần thiết:
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates postfix

 

  • Thêm package Gitlab 

 

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

 

  • Cài đặt Gitlab CE (bạn có thể thay your-url bằng url của bạn)

 

sudo EXTERNAL_URL="http://your-url" apt-get install gitlab-ce
  • Đăng nhập vào url của bạn để thử

 

+ Cài đặt Gitlab CE bằng docker:

 

 

docker run -d --restart=unless-stopped --name gitlab -p 80:80 -p 443:443 -p 22:22 \
-v /etc/gitlab -v /var/log/gitlab -v /var/opt/gitlab \
 -v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-ce:latest

 

  • Khi docker run xong đăng nhập http://localhost để sử dụng

Cài đặt Gitlab Runner:

+ Cài theo docker :

 

docker exec -it gitlab bash

 

 Cài đặt theo các bước như Omnibus package dưới đây:

Cài theo Omnibus package :

 

  • Chọn tải file binary phù hợp 

 

# Linux x86-64
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Linux x86
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386

# Linux arm
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm

 

  • Cấp quyền truy cập file:

 

sudo chmod +x /usr/local/bin/gitlab-runner

 

  • Tạo tài khoản user cho Gitlab CI :

 

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

 

  • Cài đặt Gitlab Runner:

 

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

 

  • Cấp quyền docker cho user gitlab-runner

 

sudo usermod -aG docker gitlab-runner

 

  • Logout hoặc khởi động lại máy để xác nhận quyền.

Tạo Repository  trên Gitlab:

  • Sau khi truy cập thành công vào địa chỉ web git , bạn tạo cho mình 1 project tên là test như sau:

  • Thêm hai file .gitlab-ci.ymlDockerfile vào project như sau :

 

#file .gitlab-ci.yml
image: docker


before_script:
  - ls
  - whoami

stages:
    - test
    - build

format:
    stage: test
    script:
      - docker build -t test .

compile:
    stage: build
    script:
      - docker stop test
      - docker rm test
      - docker run -d --name test -p 8089:8089 test:latest

 

  • Nội dung file Dockerfile 

 

FROM golang:latest

ENV HOST 192.168.1.8

ENV WDIR $GOPATH/src/test

RUN mkdir -p $GOPATH/src/test

ADD . $WDIR

WORKDIR $WDIR

RUN apt-get install git

RUN ls && go build -o test .


CMD ["./test"]

EXPOSE 8089


 

  • File main.go có nội dung như sau và thêm các thư viện cần thiết vào vendor :

 

package main

import (
	"github.com/kataras/iris"

	"github.com/kataras/iris/middleware/logger"
	"github.com/kataras/iris/middleware/recover"
)

func main() {
	app := iris.New()
	app.Logger().SetLevel("debug")
	
	app.Use(recover.New())
	app.Use(logger.New())

	
	app.Handle("GET", "/", func(ctx iris.Context) {
		ctx.HTML("<h1>Xin chao cac ban</h1>")
	})

	
	app.Run(iris.Addr(":8089"), iris.WithoutServerError(iris.ErrServerClosed))

}

 

  • Vào phần Setting > CI/CD Runners settings lấy token của project cho gitlab-runner 

Đăng ký cho Gitlab Runner :

+ Với Gitlab CE cài bằng docker:

  • Chạy lệnh để truy cập vào terminal của container gitlab và làm các bước cài đặt như theo gói Omnibus ở dưới :

 

docker excec -it gitlab bash

 

Với Gitlab CE cài bằng Omnibus

 

sudo gitlab-runner register -n \
  --url http://localhost/ \
  --registration-token urCaUTrmzs2c_-JDcvU- \
  --executor docker \
  --description "test" \
  --docker-image "docker:stable" \
  --docker-volumes /var/run/docker.sock:/var/run/docker.sock

gitlab-runner restart

 

Bạn có thể thay --url http://localhost bằng địa chỉ trang gitlab của bạn 

Sau đó truy cập vào CI/CD của project để kiểm tra kết quả :

Cảm ơn vì đã đọc bài viết, mọi thắc mắc bạn có thể đặt câu hỏi ở bên dưới .